package cn.lanca.gof0_5._03factory_method.simple_factory;

/**
 * 创建工厂类，通过创建静态方法从而根据传入不同参数创建不同具体产品类的实例
 *
 * @author meihongliang
 * @since 2020/7/13 16:30
 */
public class Factory {

    /**
     * 工厂类里用switch语句控制生产哪种商品；
     * 使用者只需要调用工厂类的静态方法就可以实现产品类的实例化。
     *
     * @param productName 产品名称
     * @return Product
     */
    public static Product manufacture(String productName) {
        switch (productName) {
            case "A":
                return new ProductA();

            case "B":
                return new ProductB();

            case "C":
                return new ProductC();

            default:
                return null;
        }
    }
}
